AWS Config 設定履歴ファイルと設定スナップショットを特定の時間に配信したい
困っていたこと
AWS Configの設定履歴ファイルと設定スナップショットの配信を特定の時間に実施したいです。
もし設定変更できない場合は配信間隔を教えてください。
どうすればいいのか
設定履歴ファイルについて
設定履歴ファイルは、6時間ごとに配信となります。
残念ながら配信時刻の指定はできません。
[参考] AWS Config の仕組み - AWS Config
AWS Config は、AWS リソースの設定変更を追跡し、更新された設定の詳細を、指定した Amazon S3 バケットに定期的に送信します。AWS Config は、記録するリソースタイプごとに、設定履歴ファイルを 6 時間ごとに送信します。各設定履歴ファイルには、その 6 時間の間に変更があったリソースの詳細が含まれています。各ファイルに含まれるリソースタイプは 1 つです (Amazon EC2 インスタンスや Amazon EBS ボリュームなど)。設定変更が発生しなかった場合、AWS Config はファイルを送信しません。
※記事中表より抜粋
Delivery frequency
Configuration history Delivery to an S3 bucket every 6 hours.
設定スナップショットについて
設定スナップショットを配信する方法としては、DeliverConfigSnapshot API 1 を使用しオンデマンドに配信、
または
PutDeliveryChannel API 2 を使用して、配信間隔を設定することが可能です。
1、3、6、12、24時間を指定できます。
そのため、定刻に設定スナップショットを配信する方法としては、2点考えられます。
1.DeliverConfigSnapshot APIやコマンドを定期的に実行する
1.については、以下2点の方法が考えられます
・DeliverConfigSnapshot API 1をEventBridgeやLambda関数などを利用して定期的に呼び出す3
・cronなどを利用してdeliver-config-snapshotコマンド4を定期的に実行する
2.PutDeliveryChannel APIを定刻にしたいタイミングで実行する
PutDeliveryChannel API2を定刻にしたいタイミングで実行すると、実行時刻から指定した定期ごとに配信されることになるので、おおまかに定刻を設定することができます。
注意点として、PutDeliveryChannel APIの実行から配信までは数分のラグがあります。
ラグの長さはアカウント内のリソース数によっても変動する可能性があるため、ご利用になる環境で事前に確認することをお勧めします。
また、設定後の次の設定スナップショットの配信日時(UNIX 時間)は、describe-delivery-channel-statusコマンド5 の configSnapshotDeliveryInfo.nextDeliveryTime より確認する事ができます。